import axios from 'axios';
import Qs from 'qs';

axios.defaults.timeout =  10000;

/**
 * axios请求拦截器
 */
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么
  return config;
}, function (error) {
  // 对请求错误做些什么
  console.log("拦截器request",error);
  return Promise.reject(error);
});

/**
 * axios响应拦截器
 */
axios.interceptors.response.use(((response)=>{
    // 对响应数据做点什么
    return response;
}),(error) => {
  console.log("拦截器response",error);
  return Promise.reject(error);
});


const http = {
  CTList: [
    {
      "Content-Type": 'application/json;charset=UTF-8'
    },
    {
      "Content-Type": 'multipart/form-data;charset=UTF-8'
    }
  ],
  /**
   * get请求
   * @param url  请求的url
   * @param params  请求的参数
   */
  get(url, params={}) {
    return axios.get(url,
      {
        params:params
      })
      .then((response) => {
        return response.data;
      })
      .catch((error)=>{ 
        console.log("get",error);
      });
  },

  /**
   * post请求
   * @param url  请求的url
   * @param params  请求的参数
   * @param config 请求的其他配置 
   * 注：config为空默认传递表单数据,需解析参数 key=value&key=value  Qs.stringify(params)
   *    
   */
  post(url, params, config) {
    // return axios({
    //   method: 'post',
    //   url:url,
    //   headers: {
    //     "Content-Type":'application/x-www-form-urlencoded; charset=UTF-8'
    //   },
    //   data:params,
    //   transformRequest: [function (data) {
    //     data = Qs.stringify(data);
    //     return data;
    //   }],
    // })
    params = config?params:Qs.stringify(params);
    return axios.post(url, params, config)
    .then((response) => {
      return response.data;
    })
    .catch((error)=> {
      console.log("post",error);
      return Promise.reject(error);
    });
  }
    
}

 export {
    http
 }